// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userinfo: {},
  },
  // 选择头像
  onchooseAvatar(ev) {
    // console.log(ev);
    // 获取头像临时地址
    const avatarUrl = ev.detail.avatarUrl;
    // 上传头像，不能使用拦截器
    wx.uploadFile({
      url: wx.http.baseURL + '/upload', //上传地址
      filePath: avatarUrl, //图片本地地址
      name: 'file', //文件的key，file，看接口文档
      header: {
        // 自己携带token
        Authorization: `Bearer ${getApp().token}`
      },
      formData: {
        // 接口文档要求填写
        type: 'avatar'
      },
      // 上传成功的回调函数
      success: async (res) => {
        // 把返回的json格式转换
        const resdata = JSON.parse(res.data)
        console.log(resdata);
        // 取出头像的在线地址
        const avatar = resdata.data.url
        // 发送请求修改头像
        const avatarres = await wx.http({
          url: '/userInfo',
          method: 'put',
          data: {
            avatar
          }
        })
        // 修改成功弹窗提示
        wx.utils.toast('修改头像成功')
        // 实时更新 data中的用户头像 页面实时变化
        this.setData({
          'userinfo.avatar': avatar
        })

      }
    })
  },
  async onNikenamechange(ev) {
    const nickName = ev.detail
    // 如果为空弹窗提示
    if (!nickName) {
      return wx.utils.toast('昵称不能为空')
    }
    // 发送请求修改昵称
    const res = await wx.http({
      url: '/userInfo',
      method: 'put',
      data: {
        nickName
      }
    })
    wx.utils.toast('昵称修改成功')
    this.setData({
      'userinfo.nickName': nickName
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 从本地获取数据，设置到data中
    const userinfo = wx.getStorageSync('userinfo')
    // console.log(userinfo);
    this.setData({
      userinfo
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})